package com.xihuanjun.sdk.enums;

import com.fasterxml.jackson.annotation.JsonValue;

public enum DraftType {

    /**
     * 库存转储请求或草稿
     */
    StockTransferRequestDraft("1250000001","StockTransferRequestDraft"),
    /**
     * 库存转储
     */
    StockTransfer("67","StockTransfer"),
    /**
     * 交货
     */
    DeliveryNotes("oDeliveryNotes","DeliveryNotes"),
    /**
     * 订单
     */
    Orders("oOrders","Orders"),
    /**
     * 退货请求
     */
    ReturnRequest("oReturnRequest","ReturnRequest"),
    /**
     * 退货
     */
    Returns("oReturns","Returns"),
    /**
     * 发货
     */
    InventoryGenExit("oInventoryGenExit","InventoryGenExit"),
    /**
     * 收货
     */
    InventoryGenEntry("oInventoryGenEntry","InventoryGenEntry");


    private final String code; // 编号
    private final String name; // 名称

    DraftType(String code, String name) {
        this.code  = code;
        this.name  = name;
    }

    // JSON序列化时使用编号
    @JsonValue
    public String getCode() {
        return code;
    }

    // 代码中使用名称
    public String getName() {
        return name;
    }

    // 可选：重写toString()以便直接输出名称
    @Override
    public String toString() {
        return name;
    }

    // 可选：反序列化支持（根据编号解析枚举）
    public static DraftType fromCode(String code) {
        for (DraftType type : values()) {
            if (type.code.equals(code))  {
                return type;
            }
        }
        throw new IllegalArgumentException("无效的编号: " + code);
    }
}
